La evaluación constará en realizar una aplicación en shiny en la cual se medirán las siguientes habilidades:
ui y server básico.Deberá crear una aplicación para mostrar el evolutivo del precio de la acción de una empresa.
Slides de las presentaciones:
En cada una de las presentaciones existen links a contenido más específico como por ejemplo:
Utilizaremos los paquetes tidyverse y jsonlite por lo que tendrá que instalarlos en caso de que su sesión se RStudio no lo tenga y luego cargarlos:
library(tidyverse)
library(jsonlite)
La función la cual el corazón de la app es la siguiente:
obtener_indicadores <- function(empresa = "FALABELLA") {
message("Descargando: ", empresa)
url <- stringr::str_c(
"https://www.elmercurio.com/inversiones/json/json.aspx?categoria=",
empresa,
"&time=10&indicador=2"
)
d <- jsonlite::read_json(url)$Data
df <- d %>%
stringr::str_split(";") %>%
dplyr::first() %>%
readr::read_delim(delim = ",", col_names = c("fecha", "precio", "vol"))
df <- df %>%
mutate(
fecha = lubridate::ymd_hms(fecha),
anio = lubridate::year(fecha)
)
df
}
El modo de uso es:
obtener_indicadores("FALABELLA")
## # A tibble: 4,590 x 4
## fecha precio vol anio
## <dttm> <dbl> <dbl> <dbl>
## 1 2001-07-05 14:35:55 578 319000000 2001
## 2 2001-07-27 16:29:22 580 1682000000 2001
## 3 2001-07-30 16:27:44 575 22425000000 2001
## 4 2001-07-31 15:12:14 578 15606000000 2001
## 5 2001-08-01 16:16:38 572 16588000000 2001
## 6 2001-08-02 16:20:56 565. 28005660000 2001
## 7 2001-08-03 15:59:16 562 96916900000 2001
## 8 2001-08-06 16:30:03 570 66690000000 2001
## 9 2001-08-07 15:03:36 570 2850000000 2001
## 10 2001-08-08 15:59:42 571 2683700000 2001
## # ... with 4,580 more rows
Por favor, notar el tipo y la información de cada columna. Ahora, lo que podríamos hacer es:
data <- obtener_indicadores("FALABELLA")
plot <- ggplot(data) +
geom_line(aes(fecha, precio), color = "#2196f3")
plot
O mejor un gráfico interactivo a costo (casi) 0!:
library(plotly)
ggplotly(plot)
Como mencionamos al comienzo, la aplicación tiene como finalidad mostrar la evolución del precio de la acción de la empresa seleccionada. La lista de posibles empresas se deja a continuación para su uso:
empresas <- c("NUEVAPOLAR", "SMU", "BESALCO", "COPEC", "FALABELLA", "BSANTANDER",
"CMPC", "CHILE", "SQM-B", "ENELAM", "CENCOSUD", "BCI", "LTM",
"ENELCHILE", "SM-CHILE B", "CCU", "PARAUCO", "ITAUCORP", "AGUAS-A",
"COLBUN", "ENTEL", "ECL", "CONCHATORO", "RIPLEY", "AESGENER",
"ANDINA-B", "SONDA", "CAP", "ILC", "SALFACORP", "SECURITY", "VAPORES",
"ENELGXCH", "ANTARCHILE", "BANMEDICA", "EMBONOR-B", "FORUS",
"IAM", "MASISA", "ORO BLANCO", "SK", "SMSAAM")
Se le solicita que la aplicación tenga la siguiente estructura:
La aplicación anterior la debe mejorar con lo siguiente: